Highly Concurrent Shared Storage
نویسندگان
چکیده
Switched system-area networks enable thousands of storage devices to be shared and directly accessed by end hosts, promising databases and filesystems highly scalable, reliable storage. In such systems, hosts perform access tasks (read and write) and management tasks (storage migration and reconstruction of data on failed devices.) Each task translates into multiple phases of low-level device I/Os, so that concurrent host tasks accessing shared devices can corrupt redundancy codes and cause hosts to read inconsistent data. Concurrency control protocols that scale to large system sizes are required in order to coordinate on-line storage management and access tasks. In this paper, we identify the tasks that storage controllers must perform, and propose an approach which allows these tasks to be composed from basic operations—called base storage transactions (BSTs)—such that correctness requires only the serializability of the BSTs and not of the parent tasks. We present highly scalable distributed protocols which exploit storage technology trends and BST properties to achieve serializability while coming within a few percent of ideal
منابع مشابه
Storage-Efficient Shared Memory Emulation
Improvements in communication fabrics have enabled access to ever larger pools of data with decreasing access latencies, bringing large-scale memory fabrics closer to feasibility. However, with an increase in scale come new challenges. Since more systems are aggregated, maintaining a certain level of reliability requires increasing the storage redundancy, typically via data replication. The cor...
متن کاملToward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code
There are no widely accepted design patterns for writing distributed, concurrent, fault-tolerant code. Each programmer develops her own techniques for writing this type of complex software. The use of a common pattern for fault-tolerant programming has the potential to produce correct code more quickly and increase shared understanding between developers. We describe rules, tasks, and pools, pa...
متن کاملTwo-Phase Update for Scalable Concurrent Data Structures
Parallel shared-memory software must control concurrent access to shared resources. This is typically accomplished via locking designs that result in low concurrency or that are highly complex. This paper presents two-phase update, which is an alternative method of updating concurrent data structures, and demonstrates that it is both simple and highly scalable in restricted but commonly occurri...
متن کاملA Model of Transactional Programming
There has been a lot of recent research on transaction-based concurrent programming, aimed at offering an easier concurrent programming paradigm that enables programmers to better exploit the parallelism of modern multi-processor machines, such as multi-core microprocessors. We introduce Transactional State Machines (TSMs) as an abstract finite-data model of transactional shared-memory concurre...
متن کاملConcurrent Operations of O2-Tree on Shared Memory Multicore Architectures
Modern computer architectures provide high performance computing capability by having multiple CPU cores. Such systems are also typically associated with very large main-memory capacities, of the order of tens to hundreds of gigabytes, thereby allowing such architectures to be used for fast processing of in-memory databases applications. However, most of the concurrency control mechanism associ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2000